package com.gexiaobao.pigeon.app.network

import com.gexiaobao.pigeon.app.ext.Constant
import com.gexiaobao.pigeon.app.model.bean.AboutPassDataResponse
import com.gexiaobao.pigeon.app.model.bean.AboutThisOrgResponse
import com.gexiaobao.pigeon.app.model.bean.AboutThisSeasonResponse
import com.gexiaobao.pigeon.app.model.bean.AccountSigningResponse
import com.gexiaobao.pigeon.app.model.bean.AccountUserInfo
import com.gexiaobao.pigeon.app.model.bean.AddBreedingPairInfoResponse
import com.gexiaobao.pigeon.app.model.bean.AddBreedingPairSubResponse
import com.gexiaobao.pigeon.app.model.bean.AddVisitVideoResponse
import com.gexiaobao.pigeon.app.model.bean.AddressListResponse
import com.gexiaobao.pigeon.app.model.bean.AfterSalesInfoDetailsResponse
import com.gexiaobao.pigeon.app.model.bean.AfterSalesListResponse
import com.gexiaobao.pigeon.app.model.bean.AllReserveMemberInfoResponse
import com.gexiaobao.pigeon.app.model.bean.AllVisitInfoResponse
import com.gexiaobao.pigeon.app.model.bean.AnnouncementDetailResponse
import com.gexiaobao.pigeon.app.model.bean.ApiPagerListResponse
import com.gexiaobao.pigeon.app.model.bean.ApiPagerResponse
import com.gexiaobao.pigeon.app.model.bean.ApiPagerResponse2
import com.gexiaobao.pigeon.app.model.bean.ApiResponse
import com.gexiaobao.pigeon.app.model.bean.AppBaseListResponse
import com.gexiaobao.pigeon.app.model.bean.AppMultipleProjectList
import com.gexiaobao.pigeon.app.model.bean.AppPassProjectResponse
import com.gexiaobao.pigeon.app.model.bean.AppPassSignOrderResponse
import com.gexiaobao.pigeon.app.model.bean.AppRaceOrderList
import com.gexiaobao.pigeon.app.model.bean.AppTeamListResponse
import com.gexiaobao.pigeon.app.model.bean.AppTeamProjectList
import com.gexiaobao.pigeon.app.model.bean.ApplyBindBankCardResponse
import com.gexiaobao.pigeon.app.model.bean.ApplyPayDepositResponse
import com.gexiaobao.pigeon.app.model.bean.AuctionAddressResponse
import com.gexiaobao.pigeon.app.model.bean.AuctionDescResponse
import com.gexiaobao.pigeon.app.model.bean.AuctionGoodsDetailResponse
import com.gexiaobao.pigeon.app.model.bean.AuctionHomeResponse
import com.gexiaobao.pigeon.app.model.bean.AuctionOrderListResponse
import com.gexiaobao.pigeon.app.model.bean.BankLimitResponse
import com.gexiaobao.pigeon.app.model.bean.BaseSignListResponse
import com.gexiaobao.pigeon.app.model.bean.BiddingHistoryResponse
import com.gexiaobao.pigeon.app.model.bean.BloodBookDetailResponse
import com.gexiaobao.pigeon.app.model.bean.BloodBookHouseResponse
import com.gexiaobao.pigeon.app.model.bean.BloodBookListBean
import com.gexiaobao.pigeon.app.model.bean.BloodLineDictionaryResponse
import com.gexiaobao.pigeon.app.model.bean.BloodPigeonListBean
import com.gexiaobao.pigeon.app.model.bean.BobInfoResponse
import com.gexiaobao.pigeon.app.model.bean.BreedCategoryResponse
import com.gexiaobao.pigeon.app.model.bean.BreedStatusResponse
import com.gexiaobao.pigeon.app.model.bean.BreedingPairList
import com.gexiaobao.pigeon.app.model.bean.BreedingPairSubList
import com.gexiaobao.pigeon.app.model.bean.BreedingPigeonDetailResponse
import com.gexiaobao.pigeon.app.model.bean.BreedingRecordResponse
import com.gexiaobao.pigeon.app.model.bean.BuyCountResponse
import com.gexiaobao.pigeon.app.model.bean.CarCountResponse
import com.gexiaobao.pigeon.app.model.bean.CarInfoListResponse
import com.gexiaobao.pigeon.app.model.bean.CarMapRouteResponse
import com.gexiaobao.pigeon.app.model.bean.CarouselListResponse
import com.gexiaobao.pigeon.app.model.bean.CartCouponListResponse
import com.gexiaobao.pigeon.app.model.bean.ChangeAddressResponse
import com.gexiaobao.pigeon.app.model.bean.ChangeCartSpecResponse
import com.gexiaobao.pigeon.app.model.bean.ChargeGebiInfoResponse
import com.gexiaobao.pigeon.app.model.bean.CheckGoodsResponse
import com.gexiaobao.pigeon.app.model.bean.CheckPigeonHaveResponse
import com.gexiaobao.pigeon.app.model.bean.CheckedMeResponse
import com.gexiaobao.pigeon.app.model.bean.CleaningResponse
import com.gexiaobao.pigeon.app.model.bean.CollectGoodsResponse
import com.gexiaobao.pigeon.app.model.bean.ConfirmAnOrderResponse
import com.gexiaobao.pigeon.app.model.bean.ConsumeResponse
import com.gexiaobao.pigeon.app.model.bean.CreateTrainingResponse
import com.gexiaobao.pigeon.app.model.bean.DailyScanResponse
import com.gexiaobao.pigeon.app.model.bean.DefaultResponse
import com.gexiaobao.pigeon.app.model.bean.DepositApplyResponse
import com.gexiaobao.pigeon.app.model.bean.DepositApplySdkResponse
import com.gexiaobao.pigeon.app.model.bean.DetailAllResponse
import com.gexiaobao.pigeon.app.model.bean.DeviceInfoResponse
import com.gexiaobao.pigeon.app.model.bean.DeviceListBean
import com.gexiaobao.pigeon.app.model.bean.DrippingBaseInfoResponse
import com.gexiaobao.pigeon.app.model.bean.EvaluateImageResponse
import com.gexiaobao.pigeon.app.model.bean.EvaluateListResponse
import com.gexiaobao.pigeon.app.model.bean.EvaluatedListResponse
import com.gexiaobao.pigeon.app.model.bean.FeatherColorResponse
import com.gexiaobao.pigeon.app.model.bean.FindPigeonResponse
import com.gexiaobao.pigeon.app.model.bean.FlashSaleGoodsListResponse
import com.gexiaobao.pigeon.app.model.bean.FlashSaleResponse
import com.gexiaobao.pigeon.app.model.bean.FlyWeatherInfoResponse
import com.gexiaobao.pigeon.app.model.bean.FollowAuctionResponse
import com.gexiaobao.pigeon.app.model.bean.FollowGoodsListBean
import com.gexiaobao.pigeon.app.model.bean.FreezeMoneyResponse
import com.gexiaobao.pigeon.app.model.bean.GPSRingInfoResponse
import com.gexiaobao.pigeon.app.model.bean.GatherFifteenVideoResponse
import com.gexiaobao.pigeon.app.model.bean.GatherListResponse
import com.gexiaobao.pigeon.app.model.bean.GatherLiveResponse
import com.gexiaobao.pigeon.app.model.bean.GetBreedingPairSubInfoResponse
import com.gexiaobao.pigeon.app.model.bean.GetBreedingPairTimeAxisInfoResponse
import com.gexiaobao.pigeon.app.model.bean.GetVideoListResponse
import com.gexiaobao.pigeon.app.model.bean.GoodsDetailCouponListResponse
import com.gexiaobao.pigeon.app.model.bean.GoodsDetailResponse
import com.gexiaobao.pigeon.app.model.bean.GoodsListResponse
import com.gexiaobao.pigeon.app.model.bean.GoodsSkuResponse
import com.gexiaobao.pigeon.app.model.bean.GoodsTypeParentResponse
import com.gexiaobao.pigeon.app.model.bean.GroupResultResponse
import com.gexiaobao.pigeon.app.model.bean.GroupSignResponse
import com.gexiaobao.pigeon.app.model.bean.HotGoodsResponse
import com.gexiaobao.pigeon.app.model.bean.InfoByRingSnResponse
import com.gexiaobao.pigeon.app.model.bean.InsertGroupResponse
import com.gexiaobao.pigeon.app.model.bean.LiveAnnouncementResponse
import com.gexiaobao.pigeon.app.model.bean.LivePerformanceResponse
import com.gexiaobao.pigeon.app.model.bean.LoftAllInfoResponse
import com.gexiaobao.pigeon.app.model.bean.LoftMemberInfoResponse
import com.gexiaobao.pigeon.app.model.bean.LoftMemberResponse
import com.gexiaobao.pigeon.app.model.bean.LoftPayInfoResponse
import com.gexiaobao.pigeon.app.model.bean.LoginInfoResponse
import com.gexiaobao.pigeon.app.model.bean.LogisticsProgressResponse
import com.gexiaobao.pigeon.app.model.bean.LookPigeonResponse
import com.gexiaobao.pigeon.app.model.bean.MallShopListResponse
import com.gexiaobao.pigeon.app.model.bean.MatchListResponse
import com.gexiaobao.pigeon.app.model.bean.MemberCodeResponse
import com.gexiaobao.pigeon.app.model.bean.MemberInfoResponse
import com.gexiaobao.pigeon.app.model.bean.MemberReservationResponse
import com.gexiaobao.pigeon.app.model.bean.MerchantStoresInfoResponse
import com.gexiaobao.pigeon.app.model.bean.MessageListResponse
import com.gexiaobao.pigeon.app.model.bean.MoreRaceListResponse
import com.gexiaobao.pigeon.app.model.bean.MyPassResultResponse
import com.gexiaobao.pigeon.app.model.bean.MyShopOrderListResponse
import com.gexiaobao.pigeon.app.model.bean.NoticeInfoResponse
import com.gexiaobao.pigeon.app.model.bean.NumberOfPigeonResponse
import com.gexiaobao.pigeon.app.model.bean.OrderDetailResponse
import com.gexiaobao.pigeon.app.model.bean.OrderDrippingDetailResponse
import com.gexiaobao.pigeon.app.model.bean.OrderDrippingListResponse
import com.gexiaobao.pigeon.app.model.bean.OrderListResponse
import com.gexiaobao.pigeon.app.model.bean.OrderTakingResponseList
import com.gexiaobao.pigeon.app.model.bean.OrderTypeListResponse
import com.gexiaobao.pigeon.app.model.bean.OrgDeviceInfoResponse
import com.gexiaobao.pigeon.app.model.bean.OrgInfoDetailResponse
import com.gexiaobao.pigeon.app.model.bean.OrgInfoResponse
import com.gexiaobao.pigeon.app.model.bean.OrgListResponse
import com.gexiaobao.pigeon.app.model.bean.OrgMatchResponse
import com.gexiaobao.pigeon.app.model.bean.OrgMemberTransferResultResponse
import com.gexiaobao.pigeon.app.model.bean.OrganizationIdResponse
import com.gexiaobao.pigeon.app.model.bean.OrganizerDeviceResponse
import com.gexiaobao.pigeon.app.model.bean.OssStsResponse
import com.gexiaobao.pigeon.app.model.bean.PassInfoResponse
import com.gexiaobao.pigeon.app.model.bean.PassListResponse
import com.gexiaobao.pigeon.app.model.bean.PassOrgResponse
import com.gexiaobao.pigeon.app.model.bean.PassVideoResponse
import com.gexiaobao.pigeon.app.model.bean.PayOrderInfoResponse
import com.gexiaobao.pigeon.app.model.bean.PaySignResponse
import com.gexiaobao.pigeon.app.model.bean.PgBloodResponse
import com.gexiaobao.pigeon.app.model.bean.PgEyeResponse
import com.gexiaobao.pigeon.app.model.bean.PgFeatherColorResponse
import com.gexiaobao.pigeon.app.model.bean.PgSourceResponse
import com.gexiaobao.pigeon.app.model.bean.PgYearResponse
import com.gexiaobao.pigeon.app.model.bean.PickUpDetailResponse
import com.gexiaobao.pigeon.app.model.bean.PigeonBean
import com.gexiaobao.pigeon.app.model.bean.PigeonFosterBean
import com.gexiaobao.pigeon.app.model.bean.PigeonRaceCharResponse
import com.gexiaobao.pigeon.app.model.bean.PlatFormIdResponse
import com.gexiaobao.pigeon.app.model.bean.PrintVisitResponse
import com.gexiaobao.pigeon.app.model.bean.ProvinceListResponse
import com.gexiaobao.pigeon.app.model.bean.ProvincesAndMunicipalitiesResponse
import com.gexiaobao.pigeon.app.model.bean.ProxyAppDetailResponse
import com.gexiaobao.pigeon.app.model.bean.PublicBreedingPigeonListBean
import com.gexiaobao.pigeon.app.model.bean.QueryBalanceResponse
import com.gexiaobao.pigeon.app.model.bean.QueryBankListResponse
import com.gexiaobao.pigeon.app.model.bean.QueryExpressResponse
import com.gexiaobao.pigeon.app.model.bean.RaceDetailInfoResponse
import com.gexiaobao.pigeon.app.model.bean.RaceInfoResponse
import com.gexiaobao.pigeon.app.model.bean.RaceTypeResponse
import com.gexiaobao.pigeon.app.model.bean.RaceVoucherResponse
import com.gexiaobao.pigeon.app.model.bean.ReceiptPigeonResponse
import com.gexiaobao.pigeon.app.model.bean.RegulationListBean
import com.gexiaobao.pigeon.app.model.bean.ReminderResponse
import com.gexiaobao.pigeon.app.model.bean.ReturnProgressResponse
import com.gexiaobao.pigeon.app.model.bean.RingContrastResponse
import com.gexiaobao.pigeon.app.model.bean.RingSnResponse
import com.gexiaobao.pigeon.app.model.bean.RuleDetailContentResponse
import com.gexiaobao.pigeon.app.model.bean.SaleTimesListResponse
import com.gexiaobao.pigeon.app.model.bean.ScanTransferResponse
import com.gexiaobao.pigeon.app.model.bean.SearchNameResponse
import com.gexiaobao.pigeon.app.model.bean.SearchRaceByNameDetailResponse
import com.gexiaobao.pigeon.app.model.bean.SearchRaceByNameResponse
import com.gexiaobao.pigeon.app.model.bean.SearchRaceResponse
import com.gexiaobao.pigeon.app.model.bean.SettingPaymentPwdResponse
import com.gexiaobao.pigeon.app.model.bean.ShedIncomeAndExpenditureResponse
import com.gexiaobao.pigeon.app.model.bean.ShedPigeonListResponse
import com.gexiaobao.pigeon.app.model.bean.ShopCarListResponse
import com.gexiaobao.pigeon.app.model.bean.ShopOrderListResponse
import com.gexiaobao.pigeon.app.model.bean.ShopOrderResponse
import com.gexiaobao.pigeon.app.model.bean.ShopServiceListResponse
import com.gexiaobao.pigeon.app.model.bean.SignDeviceListResponse
import com.gexiaobao.pigeon.app.model.bean.SignProjectResponse
import com.gexiaobao.pigeon.app.model.bean.StoreInfoResponse
import com.gexiaobao.pigeon.app.model.bean.ThematicListBean
import com.gexiaobao.pigeon.app.model.bean.ThematicListResponse
import com.gexiaobao.pigeon.app.model.bean.TraPassListResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingInfoResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingListResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingRecordResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingResultResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingSinglePigeonResponse
import com.gexiaobao.pigeon.app.model.bean.TrainingUnDoneListResponse
import com.gexiaobao.pigeon.app.model.bean.UpLoadBookImageResponse
import com.gexiaobao.pigeon.app.model.bean.UploadBloodImageResponse
import com.gexiaobao.pigeon.app.model.bean.UserAuthsInfoResponse
import com.gexiaobao.pigeon.app.model.bean.UserInfoResponse
import com.gexiaobao.pigeon.app.model.bean.VersionInfoResponse
import com.gexiaobao.pigeon.app.model.bean.VideoInfoResponse
import com.gexiaobao.pigeon.app.model.bean.ViewCommentsResponse
import com.gexiaobao.pigeon.app.model.bean.VisitMemberListResponse
import com.gexiaobao.pigeon.app.model.bean.VisitNoticeResponse
import com.gexiaobao.pigeon.app.model.bean.VisitReservationResponse
import com.gexiaobao.pigeon.app.model.bean.VisitSettingResponse
import com.gexiaobao.pigeon.app.model.bean.WithDrawInfoResponse
import com.gexiaobao.pigeon.app.model.param.AccountBindPhoneBean
import com.gexiaobao.pigeon.app.model.param.AccountBindPhoneParam
import com.gexiaobao.pigeon.app.model.param.AddDeviceParam
import com.gexiaobao.pigeon.app.model.param.AddDrippingParam
import com.gexiaobao.pigeon.app.model.param.AddLoftAgentParams
import com.gexiaobao.pigeon.app.model.param.AddMemberReservationParam
import com.gexiaobao.pigeon.app.model.param.AddOrReGoodsParam
import com.gexiaobao.pigeon.app.model.param.AddShoppingCarParam
import com.gexiaobao.pigeon.app.model.param.ApplyBindCardParam
import com.gexiaobao.pigeon.app.model.param.BuyNowParam
import com.gexiaobao.pigeon.app.model.param.CancelCollectParam
import com.gexiaobao.pigeon.app.model.param.CancelOrderParam
import com.gexiaobao.pigeon.app.model.param.CancelPayLoftParam
import com.gexiaobao.pigeon.app.model.param.CarCheckedAllItemParam
import com.gexiaobao.pigeon.app.model.param.CarCheckedItemParam
import com.gexiaobao.pigeon.app.model.param.CheckCouponParam
import com.gexiaobao.pigeon.app.model.param.CheckOrCancelShopParam
import com.gexiaobao.pigeon.app.model.param.CollectParam
import com.gexiaobao.pigeon.app.model.param.ConsumeApplyLoftParam
import com.gexiaobao.pigeon.app.model.param.ConsumeParam
import com.gexiaobao.pigeon.app.model.param.CreateDeviceParams
import com.gexiaobao.pigeon.app.model.param.CreateShopParam
import com.gexiaobao.pigeon.app.model.param.CreateTrainingParams
import com.gexiaobao.pigeon.app.model.param.DelayShopReceiptParam
import com.gexiaobao.pigeon.app.model.param.DepositApplyParam
import com.gexiaobao.pigeon.app.model.param.DepositApplySDKParam
import com.gexiaobao.pigeon.app.model.param.DeviceIdParams
import com.gexiaobao.pigeon.app.model.param.EditAddressParams
import com.gexiaobao.pigeon.app.model.param.EditBloodHoseParam
import com.gexiaobao.pigeon.app.model.param.EditMobileParams
import com.gexiaobao.pigeon.app.model.param.EditPassWordParams
import com.gexiaobao.pigeon.app.model.param.EditSexParams
import com.gexiaobao.pigeon.app.model.param.EditShopInfoParam
import com.gexiaobao.pigeon.app.model.param.EditUserNameParams
import com.gexiaobao.pigeon.app.model.param.EditVisitVideoParam
import com.gexiaobao.pigeon.app.model.param.EvaluateParam
import com.gexiaobao.pigeon.app.model.param.FollowOrgParams
import com.gexiaobao.pigeon.app.model.param.GenerateShopOrderParam
import com.gexiaobao.pigeon.app.model.param.GetVerCodeParams
import com.gexiaobao.pigeon.app.model.param.LoftPayInfoParam
import com.gexiaobao.pigeon.app.model.param.LoginCodeParams
import com.gexiaobao.pigeon.app.model.param.LoginParams
import com.gexiaobao.pigeon.app.model.param.MakePedigreeBookParam
import com.gexiaobao.pigeon.app.model.param.MemberTransferParam
import com.gexiaobao.pigeon.app.model.param.ModifyAddressParam
import com.gexiaobao.pigeon.app.model.param.ModifyDeviceInfoParams
import com.gexiaobao.pigeon.app.model.param.ModifyReceiveAddressParam
import com.gexiaobao.pigeon.app.model.param.NextPassParams
import com.gexiaobao.pigeon.app.model.param.OutChatParam
import com.gexiaobao.pigeon.app.model.param.PayParam
import com.gexiaobao.pigeon.app.model.param.ProjectListParams
import com.gexiaobao.pigeon.app.model.param.ReSendSMSParam
import com.gexiaobao.pigeon.app.model.param.RefundReturnParam
import com.gexiaobao.pigeon.app.model.param.RegisterParams
import com.gexiaobao.pigeon.app.model.param.ResetPwdParams
import com.gexiaobao.pigeon.app.model.param.RingInfoParams
import com.gexiaobao.pigeon.app.model.param.RingSnParams
import com.gexiaobao.pigeon.app.model.param.SaveGroupParam
import com.gexiaobao.pigeon.app.model.param.SaveInfoSignParam
import com.gexiaobao.pigeon.app.model.param.ShippingAddressParams
import com.gexiaobao.pigeon.app.model.param.SignInfoParam
import com.gexiaobao.pigeon.app.model.param.SignUpParams
import com.gexiaobao.pigeon.app.model.param.StartFlyParams
import com.gexiaobao.pigeon.app.model.param.StartTrainingParams
import com.gexiaobao.pigeon.app.model.param.SureBindCardParam
import com.gexiaobao.pigeon.app.model.param.SyncImOldMsgParam
import com.gexiaobao.pigeon.app.model.param.SyncParam
import com.gexiaobao.pigeon.app.model.param.UnBindBankBean
import com.gexiaobao.pigeon.app.model.param.UploadExpressParam
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.Headers
import retrofit2.http.PATCH
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query
import retrofit2.http.QueryMap

/**
 * 作者　: hxw
 * 时间　: 2019/12/23
 * 描述　: 网络API
 */
interface ApiService {

    companion object {

        /** 张鹏 */
        const val SERVER_URL = "http://10.10.15.89:10081"
//        const val SERVER_URL = "https://zijidexiaowo.cn:8443"
//
        /** 石然 */
        const val SERVER_URL_SR = "http://10.10.15.243:10082"
//        const val SERVER_URL_SR = "https://zijidexiaowo.cn:8443"

        /** 石然(拍卖) */
        const val SERVER_URL_SR_PM = "http://10.10.15.243:10016"
//        const val SERVER_URL_SR_PM = "https://zijidexiaowo.cn:8443/auction"

        const val SERVER_URL_SR_ZD = "http://10.10.15.243:10014"
//        const val SERVER_URL_SR_ZD = "https://zijidexiaowo.cn:8443"

        /** 张鹏商城 */
        const val SERVER_URL_ZP_SHOP = "http://10.10.15.243:10082"
//        const val SERVER_URL_ZP_SHOP = "https://zijidexiaowo.cn:8443"

        /** 纪海波 */
        const val SERVER_URL_jhb = "http://10.10.15.87:10081"

        /** 指定地址 */
        const val SERVER_PROJECT_URL = "http://10.10.15.243:10013"
//        const val SERVER_PROJECT_URL = "https://zijidexiaowo.cn:8443"

        /** im业务地址 */
//        const val IM_API_URL_SR = "https://zijidexiaowo.cn:8443"
        const val IM_API_URL_SR = "http://175.27.245.108:5100"

    }

    /** 获取转账信息  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/orgMemberTransfer")
    suspend fun orgMemberTransfer(@Body body: RequestBody): ApiResponse<OrgMemberTransferResultResponse>

    /** 获取转账信息  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payM/getTransQrInfo")
    suspend fun getTransQrInfo(@Query("userId") userId: Int, @Query("orgId") orgId: Int): ApiResponse<ScanTransferResponse>

    /** 获取团体赛报名列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppTeamSignList/{raceId}")
    suspend fun getAppTeamSignList(@Path("raceId") raceId: String): ApiResponse<Any>

    /** 获取清棚中的清棚  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/printer/getCleaning")
    suspend fun getCleaning(@Query("orgId") orgId: Int): ApiResponse<CleaningResponse>

    /** 获取sts  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/upRes/getOssSts")
    suspend fun getOssSts(): ApiResponse<OssStsResponse>

    /** 获取训放gps轨迹  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/gpsRing/getGpsRingInfosForTraining")
    suspend fun getGpsRingInfosForTraining(@Body body: RequestBody): ApiResponse<GPSRingInfoResponse>

    /** 获取公库数据  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPublicBloodPigeon")
    suspend fun getPublicBloodPigeon(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("ringOrName") ringOrName: String,
        @Query("sex") sex: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<PublicBreedingPigeonListBean>>>

    /** 确认收货  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/auctionOrderApp/receiveAuctionOrder")
    suspend fun receiveAuctionOrder(@Body body: RequestBody): ApiResponse<Any>

    /** 获取用户拍卖收货地址  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/index/getAuctionAddress")
    suspend fun getAuctionAddress(): ApiResponse<AuctionAddressResponse>

    /** 设置用户拍卖地址  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/index/setAuctionAddress")
    suspend fun setAuctionAddress(@Body body: RequestBody): ApiResponse<Any>

    /** 创建用户配置  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/index/createAuctionUserConf")
    suspend fun createAuctionUserConf(): ApiResponse<Any>

    /** 编辑代理  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/proxy/editProxyApp")
    suspend fun editProxyApp(@Body body: RequestBody): ApiResponse<Any>

    /** 删除代理  */
    @Headers("urlName:url_sr_pm")
    @DELETE(Constant.LINK_AUCTION + "/app/proxy/delProxyApp/{proxyId}")
    suspend fun delProxyApp(@Path("proxyId") proxyId: String): ApiResponse<Any>

    /** 获取代理详情  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/proxy/getProxyApp/{proxyId}")
    suspend fun getProxyApp(@Path("proxyId") proxyId: String): ApiResponse<ProxyAppDetailResponse>

    /** 添加血统书图片  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addBloodBookImg")
    suspend fun addBloodBookImg(@Body body: RequestBody): ApiResponse<Any>

    /** 确认支付  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/auctionOrderApp/payAuctionOrder")
    suspend fun payAuctionOrder(@Body body: RequestBody): ApiResponse<Any>

    /** 获取支付信息  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/auctionOrderApp/getPayOrderInfo")
    suspend fun getPayOrderInfo(
        @Query("orderId") orderId: Int,
        @Query("isUseDeposit") isUseDeposit: Boolean,
    ): ApiResponse<PayOrderInfoResponse>

    /** 申请支付(保证金订单)  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/auctionOrderApp/applyAuctionOrder")
    suspend fun applyAuctionOrder(@Body body: RequestBody): ApiResponse<ApplyPayDepositResponse>

    /** 退还保证金  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/auctionOrderApp/returnBond")
    suspend fun returnBond(@Body body: RequestBody): ApiResponse<Any>

    /** 获取app拍卖会详情描述  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/getAuctionDescApp/{auctionId}")
    suspend fun getAuctionDescApp(@Path("auctionId") auctionId: String): ApiResponse<AuctionDescResponse>

    /** 获取加价规则详情  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/getAddRuleDetailApp/{auctionId}")
    suspend fun getAddRuleDetailApp(@Path("auctionId") auctionId: String): ApiResponse<RuleDetailContentResponse>

    /** 获取保证金信息  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/auctionOrderApp/getTotalFreezeMoney")
    suspend fun getTotalFreezeMoney(): ApiResponse<FreezeMoneyResponse>

    /** 获取拍卖会的关注或者参与  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/getFollowAndJoinAuctionList")
    suspend fun getFollowAndJoinAuctionList(
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
        @Query("followType") followType: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<FollowAuctionResponse>>>

    /** 获取商品的关注或者参与  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/getFollowAndJoinGoodList")
    suspend fun getFollowAndJoinGoodList(
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
        @Query("followType") followType: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<FollowGoodsListBean>>>

    /** 关注商品或者拍卖会  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/followOperation")
    suspend fun followOperation(@Body body: RequestBody): ApiResponse<Any>

    /** 申请缴纳保证金  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/index/applyPayDeposit")
    suspend fun applyPayDeposit(@Body body: RequestBody): ApiResponse<ApplyPayDepositResponse>

    /** 确认缴纳保证金  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/index/confirmPayDeposit")
    suspend fun confirmPayDeposit(@Body body: RequestBody): ApiResponse<Any>

    /** 获取app订单列表  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/auctionOrderApp/getAuctionOrderListApp")
    suspend fun getAuctionOrderListApp(
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
        @Query("orderStatus") orderStatus: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<AuctionOrderListResponse>>>

    /** 获取最新直播公告（app端）  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/message/getLatestLiveStreamingAnnouncement")
    suspend fun getLatestLiveStreamingAnnouncement(@Query("raceId") raceId: Int, @Query("orgId") orgId: Int): ApiResponse<LiveAnnouncementResponse>

    /** 获取单条公告  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/message/getAnnouncementDetail/{id}")
    suspend fun getAnnouncementDetail(@Path("id") id: String): ApiResponse<AnnouncementDetailResponse>

    /** 获取规程公告列表（app端） */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/message/getRegulationAnnouncementList")
    suspend fun getRegulationAnnouncementList(
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
        @Query("orgId") orgId: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<RegulationListBean>>>

    /** 获取竞价历史 */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/getAddPriceHistory/{goodId}")
    suspend fun getAddPriceHistory(
        @Path("goodId") goodId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<BiddingHistoryResponse>>>

    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/getAppAuctionList/{auctionId}")
    suspend fun getAppAuctionListTitle(
        @Path("auctionId") auctionId: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int
    ): ApiResponse<ThematicListResponse>

    /** 获取app专题列表(list)  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/getAppAuctionList/{auctionId}")
    suspend fun getAppAuctionList(
        @Path("auctionId") auctionId: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<ThematicListBean>>>

    /** 代理出价  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/good/proxyPrice")
    suspend fun proxyPrice(@Body body: RequestBody): ApiResponse<Any>

    /** 立即出价  */
    @Headers("urlName:url_sr_pm")
    @POST(Constant.LINK_AUCTION + "/app/good/offerPrice")
    suspend fun offerPrice(@Body body: RequestBody): ApiResponse<Any>

    /** 获取app商品详情  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/good/{goodId}")
    suspend fun getAuctionGoodDetail(@Path("goodId") goodId: String): ApiResponse<AuctionGoodsDetailResponse>

    /** 获取app拍卖首页  */
    @Headers("urlName:url_sr_pm")
    @GET(Constant.LINK_AUCTION + "/app/index")
    suspend fun getAuctionHome(): ApiResponse<AuctionHomeResponse>

    /** 添加订阅者  */
    @Headers("urlName:url_sr")
    @POST(Constant.IM_LINK + "/channel/addSubscriber")
    suspend fun addSubscriber(@Body body: RequestBody): ApiResponse<Any>

    /** 创建群聊频道  */
    @Headers("urlName:url_sr")
    @POST(Constant.IM_LINK + "/channel")
    suspend fun channel(@Body body: RequestBody): ApiResponse<Any>

    /** 获取血统书详情(根据memberIdAndRingId)  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/getBloodBook")
    suspend fun getBloodBook(@Body body: RequestBody): ApiResponse<BloodBookDetailResponse>

    /** 开启配对  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/pigeonPair/startPair")
    suspend fun startPair(@Body body: RequestBody): ApiResponse<Any>

    /** 获取探视设置  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitSetting/{id}")
    suspend fun getVisitSetting(@Path("id") id: String): ApiResponse<VisitSettingResponse>


    /** 修改鸽舍信息  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBloodBookHouse")
    suspend fun editBloodBookHouse(@Body param: EditBloodHoseParam): ApiResponse<Any>

    /** 获取鸽舍信息  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBloodBookHouse/{id}")
    suspend fun getBloodBookHouse(@Path("id") pigeonId: String): ApiResponse<BloodBookHouseResponse>

    /** 根据种鸽id获取血统书详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBloodBookInfoByPigeonId/{pigeonId}")
    suspend fun getBloodBookInfoByPigeonId(@Path("pigeonId") pigeonId: String): ApiResponse<BloodBookDetailResponse>

    /** 修改血统书  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/editBloodBook")
    suspend fun editBloodBook(@Body param: MakePedigreeBookParam): ApiResponse<Any>

    /** 删除血统书  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/bloodLine/delBloodBook/{id}")
    suspend fun delBloodBook(@Path("id") id: String): ApiResponse<Any>

    /** 获取血统书详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBloodBookInfo/{id}")
    suspend fun getBloodBookInfo(@Path("id") id: String): ApiResponse<BloodBookDetailResponse>

    /** 新增血统书  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addBloodBook")
    suspend fun addBloodBook(@Body param: MakePedigreeBookParam): ApiResponse<DefaultResponse>

    /** 获取血统书列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBloodBookList")
    suspend fun getBloodBookList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("query") query: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<BloodBookListBean>>>

    /** 修改作育配对编号  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBreedingPairInfo")
    suspend fun editBreedingPairInfo(@Query("id") id: Int, @Query("pairNum") pairNum: String): ApiResponse<Any>

    /** 编辑作育提醒  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBreedingPairSettingToApp")
    suspend fun editBreedingPairSettingToApp(@Body body: RequestBody): ApiResponse<Any>

    /** 删除作育记录信息  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/bloodLine/delBreedingPairSubInfo/{id}")
    suspend fun delBreedingPairSubInfo(@Path("id") id: String): ApiResponse<Any>

    /** 获取作育提醒设置  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairSetting")
    suspend fun getBreedingPairSetting(): ApiResponse<ReminderResponse>

    /** 修改作育记录信息  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBreedingPairSubInfo")
    suspend fun editBreedingPairSubInfo(
        @Query("id") id: Int,
        @Query("pairTime") pairTime: String,
        @Query("nestBox") nestBox: String,
        @Query("femaleNanny") femaleNanny: String,
        @Query("maleNanny") maleNanny: String,
        @Query("nannyNestBox") nannyNestBox: String,
        @Query("remark") remark: String,
    ): ApiResponse<Any>

    /** 修改作育跟踪时间轴信息  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBreedingPairTimeAxisInfo")
    suspend fun editBreedingPairTimeAxisInfo(
        @Query("id") id: Int,
        @Query("date") date: String,
        @Query("status") status: Int,
        @Query("ringOne") ringOne: String,
        @Query("ringTwo") ringTwo: String,
        @Query("remark") remark: String,
    ): ApiResponse<Any>

    /** 获取作育跟踪  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairSubInfo")
    suspend fun getBreedingPairSubInfo(@Query("id") id: Int): ApiResponse<GetBreedingPairSubInfoResponse>

    /** 获取作育跟踪时间轴  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairTimeAxisInfo/{id}")
    suspend fun getBreedingPairTimeAxisInfo(@Path("id") id: String): ApiResponse<GetBreedingPairTimeAxisInfoResponse>

    /** 保存作育跟踪  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addBreedingPairSubInfo")
    suspend fun addBreedingPairSubInfo(@Body body: RequestBody): ApiResponse<AddBreedingPairSubResponse>

    /** 获取作育记录列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairSubList")
    suspend fun getBreedingPairSub(
        @Query("breedingPairId") breedingPairId: Int,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<BreedingRecordResponse>

    /** 获取作育记录列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairSubList")
    suspend fun getBreedingPairSubList(
        @Query("breedingPairId") breedingPairId: Int,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<BreedingPairSubList>>>

    /** 删除作育配对  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/bloodLine/delBreedingPairInfo/{id}")
    suspend fun delBreedingPairInfo(
        @Path("id") id: String,
    ): ApiResponse<Any>

    /** 获取作育配对列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPairLst")
    suspend fun getBreedingPairLst(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("query") query: String,
        @Query("id") id: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<BreedingPairList>>>

    /** 作育配对  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addBreedingPairInfo")
    suspend fun addBreedingPairInfo(@Body body: RequestBody): ApiResponse<AddBreedingPairInfoResponse>

    /** 获取集鸽15s视频  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/gather/getGatherVideo")
    suspend fun getGatherVideo(@Query("gatherId") gatherId: Int): ApiResponse<GatherFifteenVideoResponse>

    /** 获取归巢视频  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/getBackVideo")
    suspend fun getBackVideo(@Query("ringId") ringId: String, @Query("passId") passId: Int): ApiResponse<GatherFifteenVideoResponse>

    /** 上传图片(单张)  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/uploadGenealogyBookImg")
    suspend fun uploadGenealogyBookImg(@Body body: MultipartBody): ApiResponse<UpLoadBookImageResponse>

    /** 上传图片(多张)  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/uploadGenealogyBookImgs")
    suspend fun uploadGenealogyBookImgs(@Body body: MultipartBody): ApiResponse<UploadBloodImageResponse>

    /** 编辑种鸽信息  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editBreedingPigeonInfo")
    suspend fun editBreedingPigeonInfo(@Body body: RequestBody): ApiResponse<Any>

    /** 删除种鸽信息  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/bloodLine/delBreedingPigeonInfo/{id}")
    suspend fun delBreedingPigeonInfo(@Path("id") id: String): ApiResponse<Any>

    /** 获取种鸽详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPigeonInfo/{id}")
    suspend fun getBreedingPigeonInfo(@Path("id") id: String): ApiResponse<BreedingPigeonDetailResponse>

    /** 添加种鸽  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addBreedingPigeon")
    suspend fun addBreedingPigeon(@Body body: MultipartBody): ApiResponse<Any>

    /** 获取种鸽列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBreedingPigeonList")
    suspend fun getBreedingPigeonList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("status") status: String,
        @Query("category") category: String,
        @Query("sex") sex: String,
        @Query("year") year: String,
        @Query("ringOrName") ringOrName: String,
        @Query("featherColor") featherColor: String,
        @Query("eye") eye: String,
        @Query("blood") blood: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<BloodPigeonListBean>>>

    /** 删除自定义信息  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/bloodLine/delCustomInfo")
    suspend fun delCustomInfo(
        @Query("id") id: Int,
        @Query("type") type: Int,//1- 删除自定义羽色信息 2- 删除自定义眼砂信息 3-删除自定义血统信息
    ): ApiResponse<Any>

    /** 编辑自定义信息  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/bloodLine/editCustomInfo")
    suspend fun editCustomInfo(
        @Query("id") id: Int,
        @Query("info") info: String,
        @Query("type") type: Int,//1-修改自定义羽色信息 2-修改自定义眼砂信息 3-修改自定义血统信息
    ): ApiResponse<Any>

    /** 获取年份列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getYearList")
    suspend fun getYearList(): ApiResponse<PgYearResponse>

    /** 获取血統列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgBlood")
    suspend fun getPgBlood(@Query("type") type: Int): ApiResponse<PgBloodResponse>

    /** 获取种鸽来源列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgSource")
    suspend fun getPgSource(): ApiResponse<PgSourceResponse>

    /** 自定义眼砂  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addPgEye")
    suspend fun addPgEye(@Body body: RequestBody): ApiResponse<Any>

    /** 自定义羽色  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addPgFeatherColor")
    suspend fun addPgFeatherColor(@Body body: RequestBody): ApiResponse<Any>

    /** 自定义血統  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/bloodLine/addPgBlood")
    suspend fun addPgBlood(@Body body: RequestBody): ApiResponse<Any>

    /** 获取眼砂列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgEye")
    suspend fun getPgEye(@Query("type") type: Int): ApiResponse<PgEyeResponse>

    /** 获取羽色列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgFeatherColor")
    suspend fun getPgFeatherColor(@Query("type") type: Int): ApiResponse<PgFeatherColorResponse>

    /** 获取种鸽类别  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgBreedCategory")
    suspend fun getPgBreedCategory(): ApiResponse<BreedCategoryResponse>

    /** 获取种鸽状态  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getPgBreedStatus")
    suspend fun getPgBreedStatus(): ApiResponse<BreedStatusResponse>

    /** 获取国家/地区列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/bloodLine/getBloodLineDictionary")
    suspend fun getBloodLineDictionary(): ApiResponse<BloodLineDictionaryResponse>

    /** 获取集鸽直播  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/live/getGatherLiveApp")
    suspend fun getGatherLiveApp(@Query("passId") passId: Int): ApiResponse<GatherLiveResponse>

    /** 获归巢直播  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/live/getBackLiveApp")
    suspend fun getBackLiveApp(@Query("passId") passId: Int): ApiResponse<GatherLiveResponse>

    /** 获取归巢视频  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/getPassVideo")
    suspend fun getPassVideo(
        @Query("passId") passId: Int,
        @Query("pigeonId") pigeonId: Int,
        @Query("ringId") ringId: String
    ): ApiResponse<PassVideoResponse>

    /** 立即支付  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/payNow")
    suspend fun payNow(@Body body: RequestBody): ApiResponse<Any>

    /** 关赛报名申请支付  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/paySign")
    suspend fun paySign(@Body body: RequestBody): ApiResponse<PaySignResponse>

    /** 获取app关赛的详情（参赛奖）  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppPassProject/{projectId}")
    suspend fun getAppPassProject(
        @Path("projectId") projectId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<AppPassProjectResponse>

    /** 获取app多关单只赛的详情(鸽王赛)  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppMultipleProject/{projectId}")
    suspend fun getAppMultipleProject(
        @Path("projectId") projectId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<AppMultipleProjectList>>>

    /** 获取app团体赛的详情  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppTeamProject/{projectId}")
    suspend fun getAppTeamProject(
        @Path("projectId") projectId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<AppTeamProjectList>>>

    /** 获取app单关单只赛的详情  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppSignProject/{projectId}")
    suspend fun getAppSignProject(
        @Path("projectId") projectId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<SignProjectResponse>

    /** 获取1的比赛数据  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getRaceMemberAllMoney")
    suspend fun getRaceMemberAllMoney(@Query("memberId") memberId: Int): ApiResponse<ShedIncomeAndExpenditureResponse>

    /** 获取鸽主本赛季数据  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getUserSeasonData")
    suspend fun getUserSeasonData(@Query("passId") passId: Int): ApiResponse<AboutThisSeasonResponse>

    /** 获取鸽主本公棚数据  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getMemberLoftData")
    suspend fun getMemberLoftData(@Query("raceId") raceId: Int, @Query("memberId") memberId: Int): ApiResponse<AboutThisOrgResponse>

    /** 获取鸽主本关卡数据  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getMemberLoftPassData")
    suspend fun getMemberLoftPassData(@Query("passId") passId: Int, @Query("memberId") memberId: Int): ApiResponse<AboutPassDataResponse>

    /** 获取app关卡的项目列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppPassProjectList/{passId}")
    suspend fun getAppPassProjectList(@Path("passId") passId: String): ApiResponse<Any>

    /** 上传缴费凭证(关塞报名)  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/uploadPayFile")
    suspend fun uploadPayFile(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 获获取比赛的app订单列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppRaceOrderList/{raceId}")
    suspend fun getAppRaceOrderList(
        @Path("raceId") raceId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("orderStatus") orderStatus: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<AppRaceOrderList>>>

    /** 获取app订单详情  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppOrder/{orderId}")
    suspend fun getAppOrder(@Path("orderId") orderId: String): ApiResponse<AppPassSignOrderResponse>

    /** app保存报名  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/saveAppSignInfo")
    suspend fun saveAppSignInfo(@Body param: SaveInfoSignParam): ApiResponse<Any>

    /** 获取报名表格列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppBaseSignList/{baseId}")
    suspend fun getAppBaseSignList(
        @Path("baseId") baseId: String,
        @Query("memberId") memberId: Int,
        @Query("orderId") orderId: Int
    ): ApiResponse<BaseSignListResponse>

    /** app保存报名  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/saveAppSignInfo")
    suspend fun saveAppSignInfo(@Body param: SignInfoParam): ApiResponse<Any>

    /** 结息  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/settlement")
    suspend fun settlement(): ApiResponse<Any>

    /** 获取项目列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppBaseList/{raceId}")
    suspend fun getAppBaseList(@Path("raceId") raceId: String, @Query("memberId") memberId: Int): ApiResponse<AppBaseListResponse>

    /** 保存app团体赛  */
    @Headers("urlName:url_sr_zd")
    @POST(Constant.PROJECT_URL + "/v2/app/saveAppTeam")
    suspend fun saveAppTeam(@Body param: SaveGroupParam): ApiResponse<Any>

    /** 可报名的赛鸽列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppMemberTeam/{raceId}")
    suspend fun getAppMemberTeam(
        @Path("raceId") baseId: String,
        @Query("memberId") memberId: Int,
    ): ApiResponse<Any>

    /** 获取团体赛列表  */
    @Headers("urlName:url_sr_zd")
    @GET(Constant.PROJECT_URL + "/v2/app/getAppTeamList/{raceId}")
    suspend fun getAppTeamList(@Path("raceId") raceId: String): ApiResponse<AppTeamListResponse>

    /** 注销/删除接鸽员资格 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/loft/deleteTransporterWithOrg/{id}")
    suspend fun deleteTransporterWithOrg(@Path("id") id: String): ApiResponse<Any>

    /** 依据接鸽清单收鸽（接鸽员角色）（公棚签字确认）（订单状态变更） */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/completeOrderDidi")
    suspend fun completeOrderDidi(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 接鸽（接鸽员角色）（鸽友签字确认）（订单状态变更） */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/receivePigeonWithOrderDidi")
    suspend fun receivePigeonWithOrderDidi(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 删除接鸽员申请中关于汽车的信息（用户角色） */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/loft/deleteTransporterApplyCar/{id}")
    suspend fun deleteTransporterApplyCar(@Path("id") id: String): ApiResponse<Any>

    /** 退订单（订单状态变更）(接鸽员) */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/loft/returnOrderDidi")
    suspend fun returnOrderDidi(@Body param: RequestBody): ApiResponse<Any>

    /** 接订单/指定订单接收（订单状态变更）  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/loft/receiveOrderDidi")
    suspend fun receiveOrderDidi(@Body param: RequestBody): ApiResponse<Any>

    /** 查询接鸽员申请中关于汽车的信息列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getTransporterApplyCarList")
    suspend fun getTransporterApplyCarList(): ApiResponse<CarInfoListResponse>

    /** 查询接鸽员申请中关于个人的信息查询（用户角色）  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getTransporterApplyBaseByUserId")
    suspend fun getTransporterApplyBaseByUserId(): ApiResponse<DrippingBaseInfoResponse>

    /** 获取订单列表（接鸽员角色）  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getOrderDidiListWithTransporter")
    suspend fun getOrderDidiListWithTransporter(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("orgId") orgId: Int,
        @Query("status") status: Int,
        @Query("lon") lon: Double,
        @Query("lat") lat: Double,
    ): ApiResponse<ApiPagerListResponse<ArrayList<OrderTakingResponseList>>>

    /** 申请成为接鸽员（用户角色）  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addTransporterApply")
    suspend fun addTransporterApply(@Body body: RequestBody): ApiResponse<Any>

    /** 接鸽员申请中关于个人的信息创建（用户角色）  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addTransporterApplyBase")
    suspend fun addTransporterApplyBase(@Body multipartBody: MultipartBody): ApiResponse<DefaultResponse>

    /** 接鸽员申请中关于汽车的信息创建（用户角色）  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addTransporterApplyCar")
    suspend fun addTransporterApplyCar(@Body multipartBody: MultipartBody): ApiResponse<DefaultResponse>

    /** 删除/撤销订单（会员角色）  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/loft/deleteOrderDidi/{id}")
    suspend fun deleteOrderDidi(@Path("id") id: String): ApiResponse<Any>

    /** 获取订单详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getOrderDidiDetail/{id}")
    suspend fun getOrderDidiDetail(@Path("id") id: String): ApiResponse<OrderDrippingDetailResponse>

    /** 获取订单列表（用户角色）  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getOrderDidiListByUserId")
    suspend fun getOrderDidiListByUserId(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("status") status: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<OrderDrippingListResponse.ListBean>>>

    /** 获取会员预定列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/member/getMemberReservationList")
    suspend fun getMemberReservationList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("raceId") raceId: Int,
        @Query("name") name: String,
        @Query("mobile") mobile: String,
        @Query("state") state: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<AllReserveMemberInfoResponse.ListBean>>>

    /** 管理员获取公棚权限列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getUserAuths")
    suspend fun getUserAuths(): ApiResponse<UserAuthsInfoResponse>

    /** 滴滴接鸽-创建订单（会员角色）  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addOrderDidi")
    suspend fun addOrderDidi(@Body param: AddDrippingParam): ApiResponse<Any>

    /** 获取单用户下探视棚号列表(打印)  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitMemberNoListII")
    suspend fun getVisitMemberNoListII(@Query("raceId") raceId: Int, @Query("userId") userId: Int): ApiResponse<VisitMemberListResponse>

    /** 探视打印  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/visitPrint")
    suspend fun getVisitPrint(@Query("raceId") raceId: Int, @Query("memberId") memberId: Int): ApiResponse<PrintVisitResponse>

    /** 确认打印  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/confirmPrint")
    suspend fun confirmPrint(@Body body: RequestBody): ApiResponse<Any>


    /** 删除探视视频  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/visit/delVisitVideo/{id}")
    suspend fun delVisitVideo(@Path("id") id: String): ApiResponse<Any>

    /** 用户获取探视视频  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitVideo")
    suspend fun getMyVisitVideo(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("raceId") raceId: Int,
        @Query("memberName") memberName: String,
        @Query("ringId") ringId: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<GetVideoListResponse.ListData>>>

    /** 获取探视视频列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitVideoList")
    suspend fun getVisitVideoList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("raceId") raceId: Int,
        @Query("memberName") memberName: String,
        @Query("ringId") ringId: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<GetVideoListResponse.ListData>>>

    /** 上传探视视频  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/addVisitVideo")
    suspend fun addVisitVideo(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 上传探视视频oss  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/addVisitVideoOss")
    suspend fun addVisitVideoOss(@Body body: AddVisitVideoResponse): ApiResponse<Any>

    /** 修改探视视频  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/visit/editVisitVideo")
    suspend fun editVisitVideo(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 修改探视视频  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/visit/editVisitVideoOss")
    suspend fun editVisitVideoOss(@Body body: EditVisitVideoParam): ApiResponse<Any>

    /** 获取足环信息  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getInfoByRingSn")
    suspend fun getInfoByRingSn(@Query("ringSn") ringSn: String, @Query("raceId") raceId: Int): ApiResponse<InfoByRingSnResponse>

    /** 获取预定探视公告  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitNotice/{raceId}")
    suspend fun getVisitNotice(@Path("raceId") raceId: String): ApiResponse<VisitNoticeResponse>

    /** 获取全部预定探视会员列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitList")
    suspend fun getVisitList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("memberName") memberName: String,
        @Query("raceId") raceId: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<AllVisitInfoResponse.ListBean>>>

    /** 获取全部预定探视会员列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitList")
    suspend fun getVisitListState(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("memberName") memberName: String,
        @Query("raceId") raceId: Int,
    ): ApiResponse<AllVisitInfoResponse>

    /** 新增探视预定  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/addVisitReservation")
    suspend fun addVisitReservation(@Body body: RequestBody): ApiResponse<Any>

    /** 修改探视预定  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/editVisitReservationInfo")
    suspend fun editVisitReservationInfo(@Body body: RequestBody): ApiResponse<Any>

    /** 获取探视预定详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitReservationInfo")
    suspend fun getVisitReservationInfo(@Query("raceId") raceId: Int, @Query("memberId") memberId: Int): ApiResponse<VisitReservationResponse>

    /** 获取单用户下探视棚号列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/visit/getVisitMemberNoList/{raceId}")
    suspend fun getVisitMemberNoList(@Path("raceId") raceId: String): ApiResponse<VisitMemberListResponse>

    /** 根据会员id获取公棚赛鸽列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonListByMemberId")
    suspend fun getLoftPigeonListByMemberId(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("memberId") memberId: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<NumberOfPigeonResponse.ListBean>>>

    /** 获取关卡信息（包含关卡成绩）  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getAppPassInfo")
    suspend fun getAppPassInfo(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("passId") passId: Int
    ): ApiResponse<PassInfoResponse>

    /** 获取综合数据  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getDataAll")
    suspend fun getDataAll(@Query("memberId") memberId: Int, @Query("passId") passId: Int): ApiResponse<DetailAllResponse>

    /** 获取收鸽列表  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonListByRaceId")
    suspend fun getLoftPigeonListByRaceId(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("member") member: String,
        @Query("ringId") ringId: String,
        @Query("raceId") raceId: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<ReceiptPigeonResponse.ListBean>>>

    /** 获取公棚会员详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftMemberDetail/{id}")
    suspend fun getLoftMemberDetail(@Path("id") id: String): ApiResponse<LoftMemberInfoResponse>

    /** 获取组织详情  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/orgInfoToApp/{id}")
    suspend fun orgInfoToApp(@Path("id") id: String): ApiResponse<OrgInfoDetailResponse>

    /** 上传缴费凭证  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/member/uploadVoucher")
    suspend fun uploadVoucher(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 上传探视凭证  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/visit/uploadVisitVoucher")
    suspend fun uploadVisitVoucher(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 登录 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/login")
    suspend fun login(@Body param: LoginParams): ApiResponse<LoginInfoResponse>

    /** 登录(验证码) */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/codeLogin")
    suspend fun codeLogin(@Body param: LoginCodeParams): ApiResponse<LoginInfoResponse>

    /** 重置密码 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/changePwd")
    suspend fun reSetPwd(@Body param: ResetPwdParams): ApiResponse<Any>

    /** 注册 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/register")
    suspend fun register(@Body param: RegisterParams): ApiResponse<Any>

    /** 获取我加入的组织 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getOrgList")
    suspend fun getOrgJoinList(@Query("type") type: String, @Query("status") status: Int): ApiResponse<ApiPagerResponse<ArrayList<OrgListResponse>>>

    /** 搜索组织 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/searchOrg")
    suspend fun getSearchOrgList(@QueryMap map: Map<String, @JvmSuppressWildcards Any>): ApiResponse<ApiPagerResponse<ArrayList<OrgListResponse>>>

    /** 关注组织 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/followOrg")
    suspend fun followOrg(@Body param: FollowOrgParams): ApiResponse<Any>

    /** 取消关注组织 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/cancelFollowing")
    suspend fun cancelFollowing(@Body param: FollowOrgParams): ApiResponse<Any>

    /** 发送验证码 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/sendVerificationCode")
    suspend fun getVerCode(@Body param: GetVerCodeParams): ApiResponse<Any>

    /** 获取我的赛鸽 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getPigeonList")
    suspend fun getPigeonList(@QueryMap map: Map<String, @JvmSuppressWildcards Any>): ApiResponse<ApiPagerResponse2<ArrayList<PigeonBean.RingInfo>>>

    /** 添加赛鸽 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/createPigeon")
    suspend fun createPigeon(@Body param: RingInfoParams): ApiResponse<Any>

    /** 添加赛鸽 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/createPigeon")
    suspend fun createPigeon(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 寄养-添加赛鸽 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addLoftPigeon")
    suspend fun createShedPigeon(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 寄养-修改赛鸽 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/loft/updateLoftPigeonForUser")
    suspend fun updateLoftPigeonForUser(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 获取用户所属公棚下会员列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftMemberListByUserIdAndOrgId")
    suspend fun getLoftMemberListByUserIdAndOrgId(@Query("orgId") id: String, @Query("raceId") raceId: Int): ApiResponse<LoftMemberResponse>

    /** 获取公棚下所有下拉信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getAddPigeonLoftAllInfoListByOrg")
    suspend fun getAddPigeonLoftAllInfoListByOrg(): ApiResponse<LoftAllInfoResponse>

    /** 新增代理人 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/loft/addLoftAgent")
    suspend fun addLoftAgent(@Body param: AddLoftAgentParams): ApiResponse<LoftAllInfoResponse>

    /** 获取公棚下会员列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftMemberList")
    suspend fun getLoftMemberList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("shedNo") shedNo: String,
        @Query("name") name: String,
        @Query("mobile") mobile: String
    ): ApiResponse<Any>

    /** 公棚下查询赛鸽 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonListForApp")
    suspend fun getLoftPigeonList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("member") member: String,
        @Query("ringId") ringId: String,
        @Query("raceId") raceId: Int,
        @Query("loftPicIs") loftPicIs: Int,
        @Query("ringSnIs") ringSnIs: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<ShedPigeonListResponse.ListData>>>

    /** 更新赛鸽信息（公棚） */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/loft/upDateLoftPigeon")
    suspend fun upDateLoftPigeon(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 修改赛鸽 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/updatePigeon")
    suspend fun updatePigeon(@Body param: RingInfoParams): ApiResponse<Any>

    /** 修改赛鸽 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/updatePigeon")
    suspend fun updatePigeon(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 删除赛鸽 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/user/deletePigeon/{id}")
    suspend fun deletePigeon(@Path("id") id: String): ApiResponse<Any>

    /** 获取羽色列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/getFeatherColor")
    suspend fun getFeatherColor(): ApiResponse<FeatherColorResponse>

    /** 获取羽色列表(公棚) */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/getFeatherColorApp")
    suspend fun getFeatherColorApp(): ApiResponse<FeatherColorResponse>

    /** 获取设备列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/device/getPigeonDeviceList")
    suspend fun getDevice(): ApiResponse<DeviceListBean>

    /** 添加设备 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/device/createPigeonDevice")
    suspend fun createPigeonDevice(@Body param: AddDeviceParam): ApiResponse<Any>

    /** 删除设备 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/device/deletePigeonDevice")
    suspend fun deletePigeonDevice(@Query("id") id: Int): ApiResponse<Any>

    /** 修改设备编号 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/device/updatePigeonDevice")
    suspend fun updatePigeonDevice(@Body param: AddDeviceParam): ApiResponse<Any>

    /** 获取设备详情信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/device/getPigeonDeviceInfo")
    suspend fun getPigeonDeviceInfo(@Query("id") id: Int): ApiResponse<DeviceInfoResponse>

    /** 获取电子环号 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/getRing")
    suspend fun getRing(@Body body: RingSnParams): ApiResponse<RingSnResponse>

    /** 添加训放 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/training/creatTraining")
    suspend fun createTraining(@Body param: CreateTrainingParams): ApiResponse<CreateTrainingResponse>

    /** 获取我的训放列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/getTrainingList")
    suspend fun getTrainingList(): ApiResponse<TrainingListResponse>

    /** 获取我的训放结果 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/getTrainingResult")
    suspend fun getTrainingResult(
        @Query("id") id: String,
        @Query("fosterName") fosterName: String
    ): ApiResponse<TrainingResultResponse>

    /** 获取单只训放赛鸽列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/getTrainingPigeon/{id}")
    suspend fun getTrainingSinglePigeon(@Path("id") id: String): ApiResponse<TrainingSinglePigeonResponse>

    /** 删除训放计划 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/training/deleteTraining/{id}")
    suspend fun deleteTraining(@Path("id") id: String): ApiResponse<Any>

    /** 获取训放信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/getTrainingInfo/{id}")
    suspend fun getTrainingInfo(@Path("id") id: String): ApiResponse<TrainingInfoResponse>

    /** 获取训放信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/getTraining/{id}")
    suspend fun getTraining(@Path("id") id: String): ApiResponse<TrainingInfoResponse>

    /** 开始训放 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/training/startTraining")
    suspend fun startTraining(@Body param: StartTrainingParams): ApiResponse<Any>

    /** 添加单只训放训放时间 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/training/updateTrainingPigeon/{id}")
    suspend fun updateTrainingPigeon(@Path("id") id: String): ApiResponse<Any>

    /** 结束训放 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/stopTraining/{id}")
    suspend fun stopTraining(@Path("id") id: String): ApiResponse<Any>

    /** 修改地址 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editAddress")
    suspend fun editAddress(@Body param: EditAddressParams): ApiResponse<Any>

    /** 修改手机号 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editMobile")
    suspend fun editMobile(@Body param: EditMobileParams): ApiResponse<Any>

    /** 修改性别 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editGender")
    suspend fun editGender(@Body param: EditSexParams): ApiResponse<Any>

    /** 修改用户名 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editUserName")
    suspend fun editUserName(@Body param: EditUserNameParams): ApiResponse<Any>

    /** 修改真实姓名 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editRealName")
    suspend fun editRealName(@Body param: EditUserNameParams): ApiResponse<Any>

    /** 获取单个用户信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/userDetail")
    suspend fun getUserDetail(): ApiResponse<UserInfoResponse>

    /** 修改密码 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/editPwd")
    suspend fun editPwd(@Body param: EditPassWordParams): ApiResponse<Any>

    /** 修改头像 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/editIcon")
    suspend fun editIcon(@Body requestBody: RequestBody): ApiResponse<Any>

    /** 退出登录 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/loginOut")
    suspend fun loginOut(): ApiResponse<Any>

    /** 注销账户 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/user/delUser")
    suspend fun delUser(): ApiResponse<Any>

    /** 我的工具 - 查询赛鸽 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/searchRing")
    suspend fun searchRing(
        @Query("ringId") ringId: String,
        @Query("name") name: String
    ): ApiResponse<LookPigeonResponse>

    /** 我的工具 - 足环对照 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/ringContrast")
    suspend fun ringContrast(
        @Query("ringSn") ringId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<RingContrastResponse.DataList>>>

    /**每日扫描 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/monitor/getScanDetail")
    suspend fun getScanDetail(
        @Query("scanTime") ringId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("fosterName") fosterName: String
    ): ApiResponse<DailyScanResponse>

    /** 消息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/message/getMessageList")
    suspend fun getMessageList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("visible") visible: String,
        @Query("read") read: String,
        @Query("messageType") messageType: String,
        @Query("lockOrgId") lockOrgId: String,
    ): ApiResponse<ApiPagerResponse<ArrayList<MessageListResponse.DataList>>>

    /** 训放记录 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/training/pigeonTraining")
    suspend fun getPigeonTraining(
        @Query("pigeonId") pigeonId: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<TrainingRecordResponse.InfoList>>>

    /** 谁查过我 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getSearchPigeon")
    suspend fun getSearchPigeon(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<CheckedMeResponse.InfoList>>>

    /** 获取用户所属公棚列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftOrgListByUser")
    suspend fun getLoftOrgListByUser(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<BobInfoResponse>

    /** 获取赛鸽详情（公棚） */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonDetail/{id}")
    suspend fun getLoftPigeonDetail(@Path("id") id: String): ApiResponse<ShedPigeonListResponse.ListData>

    /** 删除赛鸽（公棚） */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/loft/deleteLoftPigeon/{id}")
    suspend fun deleteLoftPigeon(@Path("id") id: String): ApiResponse<Any>

    /** 获取用户所属公棚下赛鸽列表 (getLoftOrgListByUserWithOrg---getLoftPigeonListByUserWithOrg)*/
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonListByUserWithOrg")
    suspend fun getLoftOrgListByUserWithOrg(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("orgId") orgId: String,
        @Query("raceId") raceId: String,
        @Query("ringOrMember") ringOrMember: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<PigeonFosterBean.ListData>>>

    /** 入棚照片 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/loft/getLoftPigeonListByUserWithOrgForOpen")
    suspend fun getLoftPigeonListByUserWithOrgForOpen(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("orgId") orgId: String,
        @Query("raceId") raceId: String,
        @Query("ringOrMember") ringOrMember: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<PigeonFosterBean.ListData>>>

    /** 获取放飞员组织id */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/flyStaff/getOrg")
    suspend fun getOrg(): ApiResponse<OrganizationIdResponse>

    /** 获取放飞员组织id */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/flyStaff/getGatherDeviceList")
    suspend fun getGatherDeviceList(
        @Query("pn") pn: String,
        @Query("ps") ps: String,
        @Query("orgId") orgId: String
    ): ApiResponse<SignDeviceListResponse>

    /** 获取放飞员组织id */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/member/getMemberList")
    suspend fun getMemberList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("shedNo") shedNo: String,
        @Query("entryName") entryName: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<MemberInfoResponse.ListData>>>

    /** 获取组织方所有设备 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/device/getGatherDeviceList")
    suspend fun getGatherDeviceList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<OrganizerDeviceResponse>

    /** 组织方获取用户设备信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/device/getMemberDeviceList")
    suspend fun getMemberDeviceList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("shedNo") shedNo: String,
        @Query("entryName") entryName: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<OrgDeviceInfoResponse.ListBean>>>

    /** 组织方删除赛鸽 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/user/orgDeletePigeon/{id}")
    suspend fun orgDeletePigeon(@Path("id") id: String): ApiResponse<Any>

    /** 组织方修改赛鸽 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/orgUpdatePigeon")
    suspend fun orgUpdatePigeon(@Body param: RingInfoParams): ApiResponse<Any>

    /** 组织方给会员添加设备 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/device/createMemberDevice")
    suspend fun createMemberDevice(@Body param: CreateDeviceParams): ApiResponse<Any>

    /** 组织方修改设备信息 */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/device/updateMemberDevice")
    suspend fun updateMemberDevice(@Body param: ModifyDeviceInfoParams): ApiResponse<Any>

    /** 删除组织方添加设备 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/device/deleteMemberDevice/{id}")
    suspend fun deleteMemberDevice(@Path("id") id: String): ApiResponse<Any>

    /** 获取视频列表 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/getVideo")
    suspend fun getVideo(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<VideoInfoResponse.ListInfo>>>

    /** 删除全部赛鸽 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/user/deletePigeonList")
    suspend fun deletePigeonList(): ApiResponse<Any>

    /** 公告获取组织信息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/searchOrgById")
    suspend fun searchOrgById(@Query("orgId") orgId: Int): ApiResponse<OrgInfoResponse>

    /** 获取单条消息 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/message/getMessageResult/{id}")
    suspend fun getMessageResult(@Path("id") id: String): ApiResponse<NoticeInfoResponse>

    /** 删除消息 */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/message/deleteMessage/{id}")
    suspend fun deleteMessage(@Path("id") id: String): ApiResponse<Any>

    /** 获取赛鸽详情 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getPigeonInfo")
    suspend fun getPigeonInfo(@Query("pigeonId") pigeonId: Int): ApiResponse<PigeonBean.RingInfo>

    /** 赛线查询 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getFlyWeather")
    suspend fun getFlyWeather(
        @Query("liberateLongitude") liberateLongitude: String,
        @Query("liberateLatitude") liberateLatitude: String,
        @Query("homeLongitude") homeLongitude: String,
        @Query("homeLatitude") homeLatitude: String
    ): ApiResponse<FlyWeatherInfoResponse>

    /** 版本更新  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getApk")
    suspend fun upDateVersion(): ApiResponse<VersionInfoResponse>

    /** 上传deviceId  */
    @Headers("urlName:url_zp")
    @PATCH(Constant.LINK_BASE + "/user/updateDeviceId")
    suspend fun updateDeviceId(@Body param: DeviceIdParams): ApiResponse<Any>

    /** 编辑收货地址  */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/user/editShippingAddress")
    suspend fun editShippingAddress(@Body param: ShippingAddressParams): ApiResponse<Any>

    /** 获取用户设置地址  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getShippingAddress")
    suspend fun getShippingAddress(): ApiResponse<ApiPagerListResponse<ArrayList<AddressListResponse.ListBean>>>

    /** 删除收货地址  */
    @Headers("urlName:url_zp")
    @DELETE(Constant.LINK_BASE + "/user/delShippingAddress/{id}")
    suspend fun delShippingAddress(@Path("id") id: String): ApiResponse<Any>

    /** 重置每日扫描  */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/monitor/clearDailyScan")
    suspend fun clearDailyScan(): ApiResponse<Any>


    //<--------------------------------------------------------血统图相关-------------------------------------------------------------------------------------------------------->

//    /** 获取血统记录列表(私库) @Query("app") app: String, */
//    @Headers("urlName:url_zp")
//    @GET(Constant.LINK_BASE + "/lineage/getLineageList")
//    suspend fun getLineageList(
//        @Query("pn") pn: String,
//        @Query("ps") ps: String,
//        @Query("name") name: String,
//        @Query("ringId") ringId: String,
//        @Query("app") app: String,
//        @Query("masterAssistantType") masterAssistantType: String,
//    ): ApiResponse<ApiPagerListResponse<ArrayList<LineAgeListResponse.ListInfo>>>

//    /** 获取血统记录列表 (公库)*/
//    @Headers("urlName:url_zp")
//    @GET(Constant.LINK_BASE + "/lineage/getLineageList")
//    suspend fun getPublicLineageList(
//        @Query("pn") pn: String,
//        @Query("ps") ps: String,
//        @Query("name") name: String,
//        @Query("ringId") ringId: String,
//        @Query("app") app: String,
//        @Query("public") public: String,
//    ): ApiResponse<ApiPagerListResponse<ArrayList<LineAgeListResponse.ListInfo>>>

//    /** 新增血统记录 */
//    @Headers("urlName:url_zp")
//    @POST(Constant.LINK_BASE + "/lineage/createLineage")
//    suspend fun createLineage(@Body multipartBody: MultipartBody): ApiResponse<Any>

//    /** 根据mark获取字典详情列表 */
//    @Headers("urlName:url_zp")
//    @GET(Constant.LINK_BASE + "/dictionary/getDictionaryDetailList")
//    suspend fun getDictionaryDetailList(@Query("classMark") classMark: String): ApiResponse<CountryInfoResponse>
//
//    /** 根据id获取血统记录详情 */
//    @Headers("urlName:url_zp")
//    @GET(Constant.LINK_BASE + "/lineage/getLineageResult/{id}")
//    suspend fun getLineageResult(@Path("id") id: String): ApiResponse<BloodPigeonBasicInfoResponse>
//
//    /** 修改血统记录 */
//    @Headers("urlName:url_zp")
//    @PATCH(Constant.LINK_BASE + "/lineage/upDateLineage")
//    suspend fun upDateLineage(@Body multipartBody: MultipartBody): ApiResponse<UpDateLineageResponse>
//
//    /** 删除血统记录 */
//    @Headers("urlName:url_zp")
//    @DELETE(Constant.LINK_BASE + "/lineage/deleteLineage/{id}")
//    suspend fun deleteLineage(@Path("id") id: Int): ApiResponse<Any>
//
//    /** 根据血统id获取血统图 */
//    @Headers("urlName:url_zp")
//    @GET(Constant.LINK_BASE + "/lineage/getLineageGraph/{id}")
//    suspend fun getLineageGraph(@Path("id") id: Int): ApiResponse<BloodPigeonPicListInfoResponse>
//
//    /** 新增或更新血统图 */
//    @Headers("urlName:url_zp")
//    @POST(Constant.LINK_BASE + "/lineage/createAndUpdateLineageGraph")
//    suspend fun createAndUpdateLineageGraph(@Body params: CreateAndUpdateLineParam): ApiResponse<Any>
//
//    /** 新增或更新血统图 */
//    @Headers("urlName:url_zp")
//    @POST(Constant.LINK_BASE + "/lineage/createAndUpdateLineageGraph")
//    suspend fun createAndUpdateLineageGraph(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 赛鸽模糊查询 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/searchPigeon")
    suspend fun searchPigeon(
        @Query("ringId") name: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<FindPigeonResponse.ListBean>>>

    /** 赛鸽比赛查询 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/searchRace")
    suspend fun searchRace(
        @Query("ringId") name: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<SearchRaceResponse.ListBean>>>

    /** 名称模糊查询 base/searchName */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/searchName")
    suspend fun searchName(
        @Query("name") name: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<SearchNameResponse.ListBean>>>

    /** 根据名称查询赛事 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/searchRaceByName")
    suspend fun searchRaceByName(
        @Query("name") name: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<SearchRaceByNameResponse.ListBean>>>

    /** 根据鸽主赛事名称查询赛事详情 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/base/searchRaceDetail")
    suspend fun searchRaceDetail(
        @Query("pgName") pgName: String,
        @Query("raceName") raceName: String,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<SearchRaceByNameDetailResponse>

    /** 获取平台id (用于im通信) */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getPlatFormId")
    suspend fun getPlatFormId(): ApiResponse<PlatFormIdResponse>

    /** 获取会员预定详情 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/member/getMemberReservation/{raceId}")
    suspend fun getMemberReservation(@Path("raceId") raceId: String): ApiResponse<MemberReservationResponse>

    /** 获新增会员预定 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/member/addMemberReservation")
    suspend fun addMemberReservation(@Body param: AddMemberReservationParam): ApiResponse<Any>

    /** 修改会员预定 */
    @Headers("urlName:url_zp")
    @POST(Constant.LINK_BASE + "/member/editMemberReservation")
    suspend fun editMemberReservation(@Body param: AddMemberReservationParam): ApiResponse<Any>


    //<----------------------------------------------------------比赛相关race------------------------------------------------------------------------->
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/race/app")
    suspend fun getRace(): ApiResponse<MatchListResponse>

    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/passListApp/{raceId}")
    suspend fun getPassListApp(@Path("raceId") raceId: String): ApiResponse<PassListResponse>

    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/passDetailApp/{id}")
    suspend fun getPassDetailApp(@Path("id") id: String): ApiResponse<RaceDetailInfoResponse>

    /** 获取更多比赛列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/myPasses")
    suspend fun getMoreRaceList(): ApiResponse<MoreRaceListResponse>

    /** 获取我当前赛事成绩 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/myPassResult")
    suspend fun getMyPassResult(): ApiResponse<MyPassResultResponse>

    /** 从更多点击获取赛事结果  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/racePassResult")
    suspend fun getRacePassResult(@Query("raceId") raceId: String): ApiResponse<MyPassResultResponse>

    /** 上一关、下一关获取指定关卡成绩  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/toPassResult")
    suspend fun getToPassResult(@Query("id") id: String): ApiResponse<MyPassResultResponse>

    /** 获取放飞车辆路线  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/carMap/{id}")
    suspend fun getCarMap(@Path("id") id: String): ApiResponse<CarMapRouteResponse>

    /** 获取棚号  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/memberNum/{id}")
    suspend fun getMemberNum(@Path("id") id: String): ApiResponse<MemberCodeResponse>

    /** 获取综合排名成绩 RaceRankingResponse */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/raceResult")
    suspend fun getRaceResult(
        @Query("ps") ps: String,
        @Query("pn") pn: String,
        @Query("raceId") raceId: String,
        @Query("memberNum") memberNum: String,
        @Query("ringId") ringId: String,
        @Query("fosterName") fosterName: String,
        @Query("qStr") qStr: String,
    ): ApiResponse<Any>

    /** 指定赛列表  */
    @Headers("urlName:project")
    @POST("/project/user/getProjectListApp")//正式地址
    suspend fun getProjectList(@Body projectBody: ProjectListParams): ApiResponse<RaceTypeResponse>

    /** 获取训放关卡列表  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/getTrainingPassListApp")
    suspend fun getTraPassList(@Query("raceId") id: Int): ApiResponse<TraPassListResponse>

    /** 获取集鸽列表  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/gather")
    suspend fun getGatherList(
        @Query("passId") passId: String,
        @Query("qStr") qStr: String,
        @Query("imsi") imsi: String,
        @Query("ringId") ringId: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int
    ): ApiResponse<ApiPagerResponse<ArrayList<GatherListResponse.DataList>>>

    /** 获取集鸽列表（手动翻页）  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/gather")
    suspend fun getGatherListForHand(
        @Query("passId") passId: String,
        @Query("qStr") qStr: String,
        @Query("imsi") imsi: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int
    ): ApiResponse<GatherListResponse>


    /** 报名训放  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/pass/signUpTraining")
    suspend fun getSignUpTraining(@Body param: SignUpParams): ApiResponse<Any>

    /** 取消报名训放  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/pass/cancelTraining")
    suspend fun cancelTraining(@Body param: SignUpParams): ApiResponse<Any>

    /** 比赛结果RaceResultResponse */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/passResultApp")
    suspend fun passResultWeb(
        @Query("passId") passId: String,
        @Query("ps") ps: String,
        @Query("pn") pn: String,
        @Query("sortType") sortType: String,
        @Query("memberNum") memberNum: String,
        @Query("ringId") ringId: String,
        @Query("fosterName") fosterName: String,
        @Query("qStr") qStr: String
    ): ApiResponse<Any>

    /** 比赛结果RaceResultResponse */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/passResultApp")
    suspend fun orgPassResult(
        @Query("passId") passId: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
        @Query("sortType") sortType: String,
        @Query("memberNum") memberNum: String,
        @Query("ringId") ringId: String,
        @Query("fosterName") fosterName: String,
        @Query("qStr") qStr: String
    ): ApiResponse<LivePerformanceResponse>


    /** 放飞员列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/flyPassList")
    suspend fun getFlyPassList(@Query("orgId") orgId: String): ApiResponse<TrainingUnDoneListResponse>

    /** 放飞员-开始比赛（开始放飞） */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/pass/racing")
    suspend fun startRacing(@Body param: StartFlyParams): ApiResponse<TrainingUnDoneListResponse>

    /** 插组-获取项目列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/project")
    suspend fun getGroupProject(
        @Query("raceId") raceId: String,
        @Query("racePassId") racePassId: String,
        @Query("projectCode") projectCode: String,
        @Query("pn") pn: String,
        @Query("ps") ps: String
    ): ApiResponse<InsertGroupResponse>

    /** 插组-查看报名 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/project/signList")
    suspend fun getSignList(
        @Query("projectId") projectId: String,
        @Query("ringId") ringId: String,
        @Query("memberNum") memberNum: String,
        @Query("ps") ps: String,
        @Query("pn") pn: String
    ): ApiResponse<GroupSignResponse>

    /** 插组-查看成绩 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/project/projectResult")
    suspend fun getProjectResult(
        @Query("projectId") projectId: String,
        @Query("ringId") ringId: String,
        @Query("memberNum") memberNum: String,
        @Query("ps") ps: String,
        @Query("pn") pn: String
    ): ApiResponse<GroupResultResponse>

    /** 获取接鸽详情 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/getGatherPost/{raceId}")
    suspend fun getGatherPost(@Path("raceId") raceId: String): ApiResponse<PickUpDetailResponse>

    /** 获取组织下赛事 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/race/orgRaceListApp")
    suspend fun getOrgRaceListApp(
        @Query("orgId") orgId: String,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int
    ): ApiResponse<ApiPagerResponse<ArrayList<OrgMatchResponse.ListInfo>>>

    /** 获取归巢经纬度 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/passOrg")
    suspend fun getLocation(@Query("id") id: String): ApiResponse<PassOrgResponse>

    /** 放飞员-结束报名 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/pass/next")
    suspend fun getNext(@Body param: NextPassParams): ApiResponse<Any>

    /** 根据比赛id获取棚号  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/pass/raceMemberNum/{raceId}")
    suspend fun getRaceMemberNum(@Path("raceId") raceId: String): ApiResponse<MemberCodeResponse>


    //------------------------------------------------支付模块----------------------------------------------------------------------------

    /** 查询绑定的用户信息  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payM/getUserMemberInfo")
    suspend fun getUserMemberInfo(): ApiResponse<AccountUserInfo>

    /** 提交实名认证  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/setRealNameV2")
    suspend fun setRealName(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 绑定手机号  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/bindPhone")
    suspend fun bindPhone(@Body param: AccountBindPhoneBean): ApiResponse<Any>

    /** 请求绑定银行卡  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/applyBindBankCard")
    suspend fun applyBindBankCard(@Body param: ApplyBindCardParam): ApiResponse<ApplyBindBankCardResponse>

    /** 请求绑定银行卡  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/applyBindBankCardV2")
    suspend fun applyBindBankCardV2(@Body param: ApplyBindCardParam): ApiResponse<ApplyBindBankCardResponse>

    /** 确认绑定银行卡  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/bindBankCard")
    suspend fun bindBankCard(@Body param: SureBindCardParam): ApiResponse<Any>

    /** 发送验证码  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/sendVerificationCode")
    suspend fun sendVerificationCode(@Body param: AccountBindPhoneParam): ApiResponse<Any>

    /** 账户提现协议签约  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payM/signAcctProtocol")
    suspend fun signAcctProtocol(): ApiResponse<AccountSigningResponse>

    /** 查询余额  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payM/queryBalance")
    suspend fun queryBalance(): ApiResponse<QueryBalanceResponse>

    /** 充值  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/depositApply")
    suspend fun depositApply(@Body param: DepositApplyParam): ApiResponse<DepositApplyResponse>

    /** 提现  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/withdrawApply")
    suspend fun withdrawApply(@Body param: DepositApplyParam): ApiResponse<DepositApplyResponse>

    /** 提现  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getWithdrawInfo")
    suspend fun getWithdrawInfo(@Query("money") money: Int): ApiResponse<WithDrawInfoResponse>

    /** 转账  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/memberTransfer")
    suspend fun memberTransfer(@Body param: MemberTransferParam): ApiResponse<DepositApplyResponse>

    /** 确认支付  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/pay")
    suspend fun commitPay(@Body param: PayParam): ApiResponse<DepositApplyResponse>

    /** 查询余额  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payM/queryBankCard")
    suspend fun queryBankCard(): ApiResponse<ApiPagerListResponse<ArrayList<QueryBankListResponse.ListBean>>>

    /**  解除绑定手机号  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/unBindPhone")
    suspend fun unbindPhone(@Body param: AccountBindPhoneBean): ApiResponse<Any>

    /** 获取订单类型列表  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payo/getOrderTypeList")
    suspend fun getOrderTypeList(): ApiResponse<OrderTypeListResponse>

    /** 获取订单列表  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payo/getOrderList")
    suspend fun getOrderList(
        @Query("startTime") startTime: String,
        @Query("endTime") endTime: String,
        @Query("orderType") orderType: Int,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<OrderListResponse.ListBean>>>

    /** 获取订单详情  */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/payo/getOrder")
    suspend fun getOrderDetail(@Query("orderId") orderId: Int): ApiResponse<OrderDetailResponse>

    /** 解除绑定银行卡  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/unbindBankCard")
    suspend fun unbindBankCard(@Body param: UnBindBankBean): ApiResponse<OrderDetailResponse>

    /** 充值申请SDK  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/depositApplySDK")
    suspend fun depositApplySDK(@Body param: DepositApplySDKParam): ApiResponse<DepositApplySdkResponse>

    /** 获取商品列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppGoodList")
    suspend fun getAppGoodList(
        @Query("shopGoodTypeId") shopGoodTypeId: String,
        @Query("sortType") sortType: String,
        @Query("goodName") goodName: String
    ): ApiResponse<ApiPagerListResponse<ArrayList<GoodsListResponse.ListBean>>>

    /** 获取分类父列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mall/getGoodTypeFatherList")
    suspend fun getGoodTypeFatherList(@Query("pId") shopGoodTypeId: String): ApiResponse<GoodsTypeParentResponse>

    /** 获取商品详情 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppGoodDetail")
    suspend fun getGoodDetail(@Query("id") id: String): ApiResponse<GoodsDetailResponse>

    /** 获取商铺服务列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mall/getShopServiceList")
    suspend fun getShopServiceList(
        @Query("ps") pn: Int,
        @Query("pn") ps: Int,
    ): ApiResponse<ShopServiceListResponse>

    /** 获取商品sku列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mall/getGoodSkuList")
    suspend fun getGoodSkuList(@Query("id") id: String): ApiResponse<GoodsSkuResponse>

    /** 加入购物车 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/addToShopCart")
    suspend fun addToShopCart(@Body param: AddShoppingCarParam): ApiResponse<Any>

    /** 货物购物车列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getShopCartList")
    suspend fun getShopCartList(): ApiResponse<ApiPagerListResponse<ArrayList<ShopCarListResponse.ListBean>>>

    /** 购物车数量+ */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/addCount")
    suspend fun addCount(@Body param: AddOrReGoodsParam): ApiResponse<BuyCountResponse>

    /** 购物车数量- */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/reduceCount")
    suspend fun reduceCount(@Body param: AddOrReGoodsParam): ApiResponse<BuyCountResponse>

    /** 购物车勾选或取消勾选 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/checkOrCancelCheck")
    suspend fun checkOrCancelCheck(@Body param: CarCheckedItemParam): ApiResponse<CheckGoodsResponse>

    /** 全部勾选或者全部取消 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/fullCheckOrCancelCheck")
    suspend fun fullCheckOrCancelCheck(@Body param: CarCheckedAllItemParam): ApiResponse<Any>

    /** 更改所选规格 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/changeCartSpec")
    suspend fun changeCartSpec(@Body param: AddShoppingCarParam): ApiResponse<ChangeCartSpecResponse>

    /** 购物车生成订单 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/generateShopOrder")
    suspend fun generateShopOrder(@Body param: GenerateShopOrderParam): ApiResponse<ShopOrderResponse>

    /** 获取订单详情 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getShopOrderList")
    suspend fun getShopOrderList(@Query("id") id: String): ApiResponse<ConfirmAnOrderResponse>

    /** 用户删除订单 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/userDeleteOrder")
    suspend fun userDeleteOrder(@Body param: AddOrReGoodsParam): ApiResponse<Any>

    /** 删除购物车 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/deleteShopCart")
    suspend fun deleteShopCart(@Body param: AddOrReGoodsParam): ApiResponse<Any>

    /** 获取购物车当前数量 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getShopCartCnt")
    suspend fun getShopCartCnt(): ApiResponse<CarCountResponse>

    /** 立即购买 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/buyNow")
    suspend fun buyNow(@Body param: BuyNowParam): ApiResponse<ShopOrderResponse>

    /** 获取我的订单列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getMyOrderList")
    suspend fun getMyOrderList(
        @Query("orderStatus") orderType: Int,
        @Query("ps") pn: Int,
        @Query("pn") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<ShopOrderListResponse.ListBean>>>

    /** 获取我的(店铺)订单列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getMyOrderShopList")
    suspend fun getMyOrderShopList(
        @Query("orderStatus") orderType: Int,
        @Query("ps") pn: Int,
        @Query("pn") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<MyShopOrderListResponse.ListBean>>>

    /** 申请商城消费 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/consumeMallApply")
    suspend fun consumeMallApply(@Body param: ConsumeParam): ApiResponse<ConsumeResponse>

    /** 确认收货 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/confirmShopReceipt")
    suspend fun confirmShopReceipt(@Body param: AddOrReGoodsParam): ApiResponse<Any>

    /** 评价 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/addGoodsReviews")
    suspend fun addGoodsReviews(@Body param: EvaluateParam): ApiResponse<Any>

    /** 上传评价图片 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mall/uploadFile")
    suspend fun uploadFile(@Body multipartBody: MultipartBody): ApiResponse<EvaluateImageResponse>

    /** 获取评价列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getReviewsList")
    suspend fun getReviewsList(
        @Query("id") id: Int,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("evalType") evalType: Int,
    ): ApiResponse<ViewCommentsResponse>

    /** 店铺选择或者取消 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/checkOrCancelShop")
    suspend fun checkOrCancelShop(@Body param: CheckOrCancelShopParam): ApiResponse<Any>

    /** 移除购物车失效商品 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/removeInvalidGoods")
    suspend fun removeInvalidGoods(): ApiResponse<Any>

    /** 获取店铺信息 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppShopInfo")
    suspend fun getAppShopInfo(): ApiResponse<StoreInfoResponse>

    /** 申请退换货/退款  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/addReturnReview")
    suspend fun addReturnReview(@Body param: RefundReturnParam): ApiResponse<Any>

    /** 申请创建店铺  */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/createShop")
    suspend fun createShop(@Body param: CreateShopParam): ApiResponse<Any>

    /** 查询物流公司 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/queryExpress")
    suspend fun queryExpress(): ApiResponse<QueryExpressResponse>

    /** 上传物流单号 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/uploadExpress")
    suspend fun uploadExpress(@Body param: UploadExpressParam): ApiResponse<Any>

    /** 进店首页 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppShopIndex")
    suspend fun getAppShopIndex(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("shopId") shopId: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<MerchantStoresInfoResponse.ListData>>>

    /** 进店首页 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppShopIndex")
    suspend fun getAppShopIndexInfo(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("shopId") shopId: Int,
    ): ApiResponse<MerchantStoresInfoResponse>

    /** 取消订单 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/cancelOrder")
    suspend fun cancelOrder(@Body param: CancelOrderParam): ApiResponse<Any>

    /** 修改订单收货地址（只能改1次) */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/editOrderReceiveAddress")
    suspend fun editOrderReceiveAddress(@Body param: ModifyAddressParam): ApiResponse<Any>

    /** 获取我的（待评论）订单列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getMyOrderCommentList")
    suspend fun getMyOrderCommentList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<EvaluateListResponse.ListBean>>>

    /** 添加收藏 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/addCollectGood")
    suspend fun addCollectGood(@Body param: CollectParam): ApiResponse<Any>

    /** 取消收藏 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/cancelCollectGood")
    suspend fun cancelCollectGood(@Body param: CollectParam): ApiResponse<Any>

    /** 删除收藏 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/deleteCollectGood")
    suspend fun deleteCollectGood(@Body param: CancelCollectParam): ApiResponse<Any>

    /** 获取收藏列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getCollectGoodList")
    suspend fun getCollectGoodList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<CollectGoodsResponse.ListBean>>>

    /** 获取已评价列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getGoodsReviews")
    suspend fun getGoodsReviews(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<EvaluatedListResponse.ListBean>>>

    /** 重新发送验证码 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payo/resendPaySMS")
    suspend fun reSendSMS(@Body param: ReSendSMSParam): ApiResponse<Any>

    /** 退货进度查询(退货详情) */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getReviewStatus")
    suspend fun getReviewStatus(@Query("id") id: Int): ApiResponse<ReturnProgressResponse>

    /** 获取售后详情 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/afterSaleInfo")
    suspend fun getAfterSaleInfo(@Query("orderId") orderId: Int): ApiResponse<AfterSalesInfoDetailsResponse>

    /** 物流信息查询 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/queryNumDetail")
    suspend fun queryNumDetail(@Query("num") num: String): ApiResponse<LogisticsProgressResponse>

    /** 设置支付密码 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/setPayPwd")
    suspend fun setPayPwd(): ApiResponse<SettingPaymentPwdResponse>

    /** 修改支付密码 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/updatePayPwd")
    suspend fun updatePayPwd(): ApiResponse<SettingPaymentPwdResponse>

    /** 重置支付密码 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/resetPayPwd")
    suspend fun resetPayPwd(): ApiResponse<SettingPaymentPwdResponse>

    /** 获取售后订单 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/afterSales")
    suspend fun afterSales(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<AfterSalesListResponse.ListGoods>>>

    /** 购物获取可使用的优惠券列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getCartCouponList")
    suspend fun getCartCouponList(@Query("shopId") shopId: Int): ApiResponse<CartCouponListResponse>

    /** 优惠券选中或者取消 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/checkCoupon")
    suspend fun checkCoupon(@Body param: CheckCouponParam): ApiResponse<Any>

    /** 立即购买获取可用的优惠券列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getBuyNowCouponList")
    suspend fun getBuyNowCouponList(@Query("specId") specId: Int, @Query("buyCount") buyCount: Int): ApiResponse<GoodsDetailCouponListResponse>

    /** 编辑店铺 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/editAppShop")
    suspend fun editAppShop(@Body param: EditShopInfoParam): ApiResponse<Any>

    /** 请求轮播图 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getCarouselList")
    suspend fun getCarouselList(): ApiResponse<CarouselListResponse>

    /** 获取限时抢购列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mallApp/getSaleList")
    suspend fun getSaleList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<FlashSaleResponse>

    /** 获取场次列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mallApp/getSaleTimeList")
    suspend fun getSaleTimeList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<SaleTimesListResponse>

    /** 获取抢购场次商品详情 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mallApp/getSaleListBySaleTimeId")
    suspend fun getSaleListBySaleTimeId(
        @Query("id") id: Int,
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<ApiPagerListResponse<ArrayList<FlashSaleGoodsListResponse.ListBean>>>

    /** 获取热卖商品列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mallApp/getHotSaleList")
    suspend fun getHotSaleList(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int
    ): ApiResponse<HotGoodsResponse>

    /** 检查赛鸽是否存在 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/lineage/checkLineageRingId")
    suspend fun checkLineageRingId(@Query("ringId") ringId: String): ApiResponse<CheckPigeonHaveResponse>

    /** 延迟收货 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/delayShopReceipt")
    suspend fun delayShopReceipt(@Body param: DelayShopReceiptParam): ApiResponse<Any>

    /** 再来一单 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/moreOne")
    suspend fun moreOne(@Body param: DelayShopReceiptParam): ApiResponse<Any>

    /** 获取充值鸽币信息 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getChargeGebiInfo")
    suspend fun getChargeGebiInfo(@Query("moeny") moeny: Int): ApiResponse<ChargeGebiInfoResponse>

    /** 更改收货地址 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/changeAddress")
    suspend fun changeAddress(@Body param: ModifyReceiveAddressParam): ApiResponse<ChangeAddressResponse>

//    ---------------------------------------------------------!!!!!-im业务相关---------------------------------------------------------------

    /** 获取某频道消息 */
    @Headers("urlName:url_im_sr")
    @POST(Constant.IM_LINK + "/channel/messagesync")
    suspend fun getMessageSync(@Body param: SyncImOldMsgParam): ApiResponse<Any>

    /** 同步最近通话 */
    @Headers("urlName:url_im_sr")
    @POST(Constant.IM_LINK + "/conversation/sync")
    suspend fun sync(@Body param: SyncParam): ApiResponse<Any>

    /** 获取省份列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mall/getProvinceList")
    suspend fun getProvinceList(): ApiResponse<ProvinceListResponse>

    /** 获取省市区 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getProvinceList")
    suspend fun getProvinceAndMunicipalities(): ApiResponse<ProvincesAndMunicipalitiesResponse>

    /** 获取城市列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mall/getCityList")
    suspend fun getCityList(@Query("provinceId") provinceId: Int): ApiResponse<ProvinceListResponse>

    /** 获取地区列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mall/getAreaList")
    suspend fun getAreaList(@Query("provinceId") provinceId: Int, @Query("cityId") cityId: Int): ApiResponse<ProvinceListResponse>

    /** 获取街道列表 */
    @Headers("urlName:url_zp_shop")
    @GET(Constant.LINK_RACE + "/mall/getTownList")
    suspend fun getTownList(
        @Query("provinceId") provinceId: Int,
        @Query("cityId") cityId: Int,
        @Query("areaId") areaId: Int
    ): ApiResponse<ProvinceListResponse>

    /** 上传清关身份证 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/payM/uploadIdCard")
    suspend fun uploadIdCard(@Body multipartBody: MultipartBody): ApiResponse<Any>

    /** 获取战绩统计折线图 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/result/getPigeonRaceChart")
    suspend fun getPigeonRaceChart(
        @Query("pigeonId") pigeonId: Int,
        @Query("raceId") raceId: Int,
        @Query("raceType") raceType: Int
    ): ApiResponse<PigeonRaceCharResponse>

    /** 获取比赛凭证 */
    @Headers("urlName:url_zp")
    @GET(Constant.LINK_BASE + "/user/getRaceVoucher")
    suspend fun getRaceVoucher(
        @Query("pn") pn: Int,
        @Query("ps") ps: Int,
        @Query("raceName") raceName: String,
    ): ApiResponse<ApiPagerListResponse<ArrayList<RaceVoucherResponse.ListBean>>>

    /** 退出对话 */
    @Headers("urlName:url_sr")
    @POST(Constant.IM_LINK + "/outChat")
    suspend fun outChat(@Body param: OutChatParam): ApiResponse<Any>

    /** 获取app店铺列表 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getAppShopList")
    suspend fun getAppShopList(
        @Query("typeId") typeId: Int,
        @Query("ps") ps: Int,
        @Query("pn") pn: Int,
    ): ApiResponse<ApiPagerListResponse<ArrayList<MallShopListResponse.ListBean>>>

    /** 获取快捷产品支持银行列表及限额 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/mallApp/getBankLimit")
    suspend fun getBankLimit(): ApiResponse<BankLimitResponse>

    /** 生成公棚赛鸽支付订单 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/genLoftPayInfo")
    suspend fun genLoftPayInfo(@Body param: LoftPayInfoParam): ApiResponse<LoftPayInfoResponse>

    /** 二维码公棚赛鸽申请支付 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/consumeApplyLoftPigeon")
    suspend fun consumeApplyLoftPigeon(@Body param: ConsumeApplyLoftParam): ApiResponse<Any>

    /** 取消二维码公棚赛鸽申请支付 */
    @Headers("urlName:url_sr")
    @POST(Constant.LINK_RACE + "/mallApp/cancelPayLoftPigeon")
    suspend fun cancelPayLoftPigeon(@Body param: CancelPayLoftParam): ApiResponse<Any>

    /** 获取赛事信息 */
    @Headers("urlName:url_sr")
    @GET(Constant.LINK_RACE + "/raceApp/getRaceInfo")
    suspend fun getRaceInfo(
        @Query("raceId") raceId: Int,
        @Query("orgId") orgId: Int,
    ): ApiResponse<RaceInfoResponse>

}